export interface IProps {
    width: number;
    height: number;
    image: IImage | null,
    className?: string;
}
export interface IContextState {
    width: number;
    height: number;
    image: IImage | null;
    viewer: IViewer | null;
    magnifyPoint: IMagnifyPoint;
    action: any;
    stack: any[];
    cursor: any;
}
export interface IContext {
    state: IContextState,
    dispatch: any
}


export interface IViewer {
    x1: number;
    x2: number;
    y1: number;
    y2: number;
    resizing?: boolean
}
export interface IImage {
    el: null | HTMLImageElement;
    width: number;
    height: number
}
export interface IMagnifyPoint {
    x: number;
    y: number;
    right: number;
    bottom: number;
}